SYNTAX
Serving Timex-Sinclair
Personal Computers
A PUBLICATION OF THE HARVARD GROUP
VOL. 5 NO .1
ISSN 0273-2696
JAN. . 1984
IN THIS ISSUE
8K Programs
Biorhythms . 9
Kaleidoscope . 19
Not Entirely Clear . 9
Pi . 18
Renumber . 14
Reuseable Loops . 6
Classified Ads . 22
Dear Editor . 12
Games . 9,19
Hardware Review
UM-64 Memory Module.... 4
ROMPAK ROM Card . 5
Hardware Specifications
2068 Connector Pinouts. 8
2068 Port Assignments .22
Machine Code . 14,19
Math . 18
New Products and
Services . 3
News
Sinclair Announces QL..1
New Timex Per ipherals . . 4
Program Improvements
ROM Calls . 2
Cassette Labeler . 2
Software Hint
RAND and AutoRUN . 7
Software Review
Timeblasters . 6
Mazeball . 6
Syntax Errors . 2
Users' Groups . 2
Utilities . 6 ,14
Vendor Report . 2
Index of Advertisers
Byte Back Co . 17
SINCLAIR ANNOUNCES QL; PLANS US MKT RE-ENTRY
Sinclair Research, Ltd announced in London a
new machine — the Sinclair QL — using the 68008
processor running at 7.5 MHz. Late February
should see initial shipments in the UK, with
production building to 20,000/mo by summer.
Introductory price in the UK is $599, but the
US price will likely be $499 when the machine
arrives here, perhaps by fall of 84. Specs
call for a word-processing quality, 65-key
keyboard with 5 keys for functions & 4 cursor
control keys. With a monitor, you'll get 85
char, by 25 lines, but only 40-60 characters
with TV display. Display outputs to both BW
RGB monitors and PAL UHF TV characterize the
UK version. Standard memory of 128K with two
improved microdrives (100K each) plus bundled
software from Psion for word-processing, data
base, spreadsheet & graphics make a powerful
machine. Although the QDOS operating system
& Sinclair SuperBASIC set the machine apart,
the multiple-window feature and export/import
of files between programs place this design
well ahead of similarly priced machines. Up
to 6 more microdrives & a Sinclair Local Area
Network can attach to this processor. Other
features include 32K ROM with provision for
64K ROM cartridges & 4-color high-resolution
(512x256) screen or 8-colors at 256x256 dots,
2 RS-232C serial ports and a realtime clock.
Sinclair SuperBASIC is fully procedure-
structured and extendable. Execution speed
does not depend on program size.
Thorn-EMI produces the QL. Sinclair
plans to distribute in the US by mail-order.
SYNTAX expects this machine to be in
short supply since it competes functionally
with machines currently selling at 2-3 times
its projected price. Sinclair interfaces for
parallel printers, Winchester disks, & IEEE-
488, as well as 500K memories, will follow.
In other news, Micro-Prolog (a training
AI language) is available for the Spectrum.
See page 4 for more ZX/TS news from CES.
i
SYNTAX ERRORS: Change First-
loader's translation table to 32 at
44125 and 14 at 44126. Some Upload
tapes from E-Z Key share the error.
This doesn't affect translations, &
both programs run correctly. Use a
Winky Board II to load ZX/TS tapes.
Connector diagrams in this
issue supercede information
published in SYNTAX Dec. 83 pi.
PROGRAM IMPROVEMENTS
To see more ROM calls in Marty
Iron's program translated for the
2068, you must change lines 100 and
210 to use 14446 instead of 7679.
Expect run time of about 1 hour.
Cassette Labeler needs changes
in lines 27 0 and 370 if you want to
use full 30-character lines on a
2068 version. Insert PRINT AT 18,0
in both locations.
John Slattery, Chatham Township, NJ
VENDOR REPORT
SYNTAX expects to get its act
together by March 84.
Larry Weigel of Synergistic
Designs can be reached by telephone
through 312/252-6356. Larry says
the company expects to move to a
new location in the Chicago area by
the end of the first quarter.
E. Arthur Brown does not have
thermal labels in stock, nor does
any other vendor known to SYNTAX.
ECC publications professed no
knowledge of any problem with issue
7 of Timex-S incla i r User on 5 Jan
1984. SYNTAX has not received its
subscription copy, and we have no
report from the UK parent company.
If you wish to complain, your bank
or credit card company and your
postmaster should assist you. Or
you may write to Mr. Richard Hease,
Chairman, ECC Publications, 196-200
Balls Pond, London, UK Nl 4AQ.
Although the New York Attorney
General sends form letters claiming
inability to locate any assets, you
should file complaints about FROG.
SYNTAX believes the FROG case could
be serious — it's crucial to build a
substantial file in Albany. Call
518/474-5481 for complaint forms.
ZXLR8 orders will be filled by
G. Russell — Electronics. Send new
orders to RD 1 Bx 539, Centre Hall,
PA 16828 ($11 ppd). Advanced
Interface Designs no longer sells
this high-speed load-save program.
We have two more complaints
about non-delivery from KOPAK. The
complainants have neither product
nor refund. KOPAK informs us they
will ship EZ-LOADER starting Feb. 8.
ZX/TS USERS' GROUPS
To check for a local group that's
not listed, or to announce a new
group, call 617/456-3661 or write
SYNTAX, RD 2 Box 457, Bolton Rd.,
Harvard, MA 01451. Send SASE for
name of group in your area.
Dayton, OH: T/S Research Computer
Club, Steve Douglas, 1515 Canfield
Ave., Dayton, 45406, 513/278-8163.
Long Island, NY: L.I. Sinclair
Timex Group, Paul Donnelly, 10 Idle
Day Dr., Centerport, NY 11721.
Send phone number or SASE.
Roanoke, VA: Roanoke-Franklin
County Timex-Sinclair Area User's
Group meets the first Monday of
every month, Salvation Army Hqtrs,
7th St. and Dale Ave., 7-SK pm.
Contact Gary Preston, 703/576-2390,
or Capt. Jim Worthy, 703/343-5335.
Franklin County, VA: Sinclair
Local User Group has changed its
name to the Southern Virginia Timex
User's Network. Their newsletter,
SLUG, now goes by the name of TUG¬
LINES. Contact Gary Preston, Rt 1
Box 21, Glade Hill, VA 24092.
Mexico: ZX/TS Users Group of
Mexico. Contact Miki Kronish,
Apdo. Postal 5-450, Guadalajara,
Jalisco, MEXICO.
2
NEW PRODUCTS AND SERVICES
Prentice-Hall publishes two new
books for the ZX/TS: TIMEX/Sinclair
Interfacing; Tested Interfacing
Projects for the ZX80, ZX81 . and
Timex/Sinclair 1000 (includes
instructions for building a relay
controller, A-D and D-A converter,
joystick interface, printer
interface, memory, etc., including
pin-outs and specs for chips used)
for $10.95 paperback/$17.95
clothbound, by James Downey and Don
Rindsberg; 30 Games for the
Timex/Sinclair Computer
(simulation, fortune telling,
graphics) for $4.95 paperback/$9.95
clothbound, by William Behrendt.
Available from Prentice-Hall,
Englewood Cliffs, NJ 07632,
201/592-2640.
G. Russell Electronics announces
four new products; The SRS Speech
Recognition System includes an
amplifier and software on cassette
for recognizing up to eight spoken
words. For TS2068 and 16K ZX/TS at
$34.95 assembled, $29.95 kit.
COMPCOOLER allows you computer to
run cooler by reducing the voltage
at the 9VDC jack. $7.95 for ZX/TS
(except TS1500). KEY cassette
program provides UNLOCK to LIST and
SAVE normally unlistable programs,
PROTECT to shift programs above
RAMTOP, MERGE to combine programs,
and BYTES REMAINING to give RAM
available. $10.00 for 16K ZX/TS.
WINKY 2000 makes loading TS2068
tapes easier and lets you copy any
program you can LOAD. Includes
monitor jack and LED (avail. Mar.
84). G. Russell Electronics, RD 1
Box 539, Centre Hall, PA 16828.
DO-CALC consists of six linked
routines; Calculator© Factorial,
Accounting/Statistics, Running
Balance, Tranform/Regression, and
Compound Interest. Written
in BASIC for 16K ZX/TS. $16 ppd.
from B.V. Gerber, 3707 Downey Dale
Dr., Randallstown, MD 21133.
Banta Software offers three new
packages for the 2068. SCREEN-
SOLV, an electronic worksheet for
engineers and scientists, capable
of solving algebraic or
trigonometric equations and
definite integrals, allows up to 48
user defined variables and six 96
element arrays, incorporation of
final formulae into BASIC programs,
and 288 step SCREEN-SOLV programs.
Results can be tabulated or
plotted. Available March 84 for
around $35. SCREEN-CALC, a
Visicalc-like spreadsheet program,
allows up to 1008 cells containing
an 8 letter label and a number.
All standard TS BASIC functions may
be entered into cells. Other
features include sums, averages,
conditionals, loops, and menu-
driven operation, all for $19.95.
FOOTBALL, a colorful, challenging
strategy game, offers both
offensive and defensive plays for
one or two players. $14.00, from
Banta Software, 8088 Highwood Way,
Orangevale, CA 95662, 916/722-4895.
Robotec Inc. introduces RAMPAGER, a
machine code monitor for 16K ZX/TS
machines. Allows entry of bytes in
hexidecimal, inserts bytes (bumping
all other bytes up), displays and
prints memory in decimal, hex, and
characters. It is NOT an assembler
or disassembler, but it is written
entirely in machine code and loads
in under 75 seconds. $9.95 + $1.25
P&H from Robotec Inc., 59 C St.,
Ampoint Ind. Park, Perrysburg, OH
43551, 419/666-2410.
Color Graphics deals with practical
applications of high resolution
graphics on the TS2068. Includes
techniques for 3-D drawing, maps,
geometric figures, pie, bar, and
line charts, characters and shapes,
and moving objects on the screen.
Contains 45 tested program listings
with notes. By Nick Hampshire,
$12.95 paperback from Hayden Book
Co., 10 Mulholland Dr., Hasbrouck
Heights, NJ 07604, 201/393-6306.
3
TIMEX SHOWS NEW PERIPHERALS
Model Description Avail Price
TS2050 Modem Now $120
TS2060 Interface 2Q 84 $110
TS2080 80 Col. Printer IQ 84 $325
TS2065 Microdrive 2Q 84 $65
Timex displayed these products
at the 1984 Consumer Electronics
Show in Las Vegas. Prices and
availability are approximate.
Timex's new TS2050 Modem works
with all Timex-Sinclair computers
and includes menu driven software
on cassette. It features direct
modular connection, auto-dial, and
auto-answer. An optional command
cartridge for the 2068 dials up to
14 numbers and contains automatic
logon procedures.
For expanding the capabilities
of the 2068, the TS2060 Interface
provides buffered bus expansion,
RS232-C serial and Centronics
parallel ports, a port for an extra
32K RAM. RGB color monitor output
with audio, a networking facility
for up to 64 TS2068s, and a port
for up to 8 microdrives.
Plugging into the Centronics
port of the interface, the TS2080
printer provides 80 columns of dot
matrix output, including all the
characters in the TS2068, in normal
or italicized format. It looks
like a full sized computer printer,
and has a price to match.
The most exciting item shown,
the TS2065 Microdrive, reads and
writes tiny tape cartridges about
the size of a thin book of matches.
Each cartridge contains 20 feet of
tape in a continuous loop and can
store 80 to 100K bytes of data.
During formatting, the drive looks
for faulty portions of the tape and
locks them out; thus the storage
figure is expressed as a range. A
perfect tape holds 100K. The tape
runs at 30 ips, so the entire loop
passes in 8 seconds. This
translates to a transfer rate of
102,400 baud on a perfect tape.
The Microdrive system supports both
program and data files using
standard TS2068 commands such as
CAT, ERASE, FORMAT, OPEN, etc. The
CAT(alog) command reads the entire
tape; there is no single directory
area on the tape. The Microdrives
are powered from the computer.
Timex imports them from Sinclair
while gearing up their facilities.
Sinclair Research demonstrated
their flat-screen black and white
pocket television, with automatic
television standard selection,
focus, horizontal and vertical
hold, brightness and contrast. It
measures 5.5x3.5x1.25 inches,
weighs 12 oz., and costs $100.
Slated availability: Mid 1984.
Cedric Bastiaans, Los Angeles CA
HARDWARE REVIEW
Product: UM-64 Memory Module
Machines: ZX/TS (not TS2068)
From: Byte-Back Co.
Rt. 3 Box 147 Brodie Rd.
Leesville, SC 29070
803/532-5812
Price: $119.95 Assembled
$109.95 Kit
+$4.95 P&H
Using bigger memories creates
opportunities for greater losses in
a crash. Byte-Back's battery-back-
up scheme cuts this risk. You'll
also get the possibility to have
your operating system in RAM (all
but the characters), compatibility
with the TS1500, switch-selectable
banks in the 8-16K area, an EPROM
socket you can switch-select into
8-16K, and reasonable documentation
from a company that maintains an
evening help line.
When power fails, 6 alkaline
batteries (AA size) keep power on
your system for up to 30 minutes.
These backup batteries supply 9V to
the entire system, including other
peripherals. Don't run high-drain
items — like a ZX printer — from the
backup system. Also, if you're
going to SAVE to tape, you'll need
a battery-powered tape recorder.
You'll need fresh batteries to
get protection with this circuit
because the regulator will drop out
at 1.22V per cell. Most cells are
rated at end-point voltages of 1.1V
or less — you can expect about 1/3
rated life in this circuit. The
batteries only operate when power
fails, so the calendar time can be
quite long. SYNTAX recommends
testing the backup feature
regularly, with non-crucial data.
If you need longer backup
times, you can change to a larger
battery holder, mounted externally,
or modify the circuit to use a re¬
chargeable pack similar to the ones
described in SYNTAX (Aug. 82 p.5).
Don't use the Reset function
during battery operation. Doing so
would wipe out all memory — not just
16-32K. When you lose power, this
backup runs your whole system.
With your UM-64, you get MC &
instructions to move your operating
system into the RAM, where you can
modify the code as you wish. Our
simple test modified the graphic
character codes to make both the 1
& 2 keys print the 1-key graphic —
not sophisticated, but enough to
see that we really operated from
RAM. Changing the character set
code in the RAM will not suffice to
change the characters, though. The
part of your ZX/TS that reads these
codes is isolated electronically
from the edge-connector where the
UM-64 attaches. One use is to
change printer USR calls to use
LLIST, LPRINT and COPY.
Byte-Back's UM-64 will work on
your TS1500, as well as on the
other ZX/TS machines. Of course it
doesn't work on Spectrums or 2068s.
SYNTAX could not get the UM-
64, TS1500 and MW-100 printer to
function together. By telephone,
Jerry Minchey informed us that this
is a timing problem for which Byte-
Back provides a fix incorporated in
later production models than we
tested. This fix also allows you
to LOAD 32K BASIC programs directly
and Jerry will provide it at no
charge to people who need it.
In a nice touch, this memory
provides two sets of switches to
control the 8-16K block. Four of
these disable 2K blocks of internal
RAM; four control the address of
the built-in PROM socket. If your
system uses one set configuration,
you won't mind having to open the
case to set the switches. SYNTAX
constantly reconfigures systems and
suggests that you may want to cut a
slot in the case.
Documentation includes a parts
list, schematic, component layout,
and clear directions for use. You
also get a clearly stated warranty,
a real address, and a phone number.
Construction of this unit uses
generally good practice. You will
find one piggy-backed IC, a diode,
a resistor, and a 3-inch wire that
provide a ROM CS function. Also,
the battery leads can extend out of
the case for your convenience. None
of these are, by themselves, bad —
but all can cause you trouble in a
place with lots of vibration. For
most uses, expect no trouble. We
like the gold, bifurcated contacts
on the connector.
HARDWARE REVIEW
Product: ROMPAK ROM Card
Machines: ZX/TS Machines (not 2068)
From: Rompak, 8206 Blackburn
Ave., Los Angeles, CA
90048, 213/653-9741
Price: $16.95 Assem. , with ZIF
$9.95 Kit, without ZIF
+$2.00 P&H
ROMPAK permits you to use many
programs instantly — cartridges in
the rough. An adaptor plugs onto
your ZX/TS and provides a socket to
contain the program ROM. A simple
machine code routine in the ROM
moves the program into RAM in under
a second, and you're ready to go.
You can buy the assembled type
with ZIF (Zero Insertion Force)
socket, or the kit with regular
socket (ZIF socket separately
5
$4.95). Both versions include an
extender to connect other
peripherals. Rompak recommends the
ZIF socket and SYNTAX advises using
the regular socket only for ROMs
you will never change.
This product reads 2764 or
2732 EPROMs in the unused 8-16K
block of ZX/TS memory. The newest
version has a jumper for 2716s.
One page of instructions give
all the necessary cautions. Every
word on this sheet is important —
read before destroying (your ROM,
computer, adaptor, or all three).
Components and design of this
product show good judgement. Our
assembled version is well-built,
and uses a bifurcated, gold-contact
connector that fits very tightly.
Tin-plated extender pins allow you
to connect other peripherals. The
double-sided glass circuit board is
cleanly laid out and well-marked.
Changing ROMs with the Rompak
attached to your computer will test
your dexterity, as the bottom of
the ROM socket lies too near the
top of the computer — hold the ROM
by the ends. Also, the "1"
referred to in step 4 of the
instructions is at the top right of
the ROM socket. There's also one
below and to the left, so watch it.
SYNTAX tested two EPROMS
available for this product, one no
longer available. The other
contains Dan Tandberg's programs
Timeblasters & Mazeball. Both
require 16K of RAM.
Timeblasters is an arcade game
with moving graphics. Your space
ship travels to the right (we must
be the good guys) and fires at
enemies moving leftward. Actually,
the background moves by you. Your
moves are up, down and fire. But
as you miss, time speeds up. With
6 levels of play, you can spend a
lot of time getting good at it.
Mazeball extends the classic
pong game by bouncing the ball
through one of seven mazes. All
you gotta do is keep the ball
bouncing — HA!
REUSABLE LOOPS — 8K/1K
You can shorten and clarify
some of your programs by using one
loop and several flag variables to
perform related operations. For a
sample, let's take a utility that
creates, modifies, moves, checks, &
prints a ten-byte MC routine.
You could write separate loops
for each operation. But, since we
always need 10 steps, one FOR-NEXT
sequence (100 & 190) will do. Once
inside the loop, we do some things
on every pass, so we put them first
at lines 102-107. Next we test the
flag variable, K$, to see which of
the choices we want to execute this
time. If we cannot complete the
task in one statement, we use a
GOSUB to a lower line number. When
we finish, we send the program back
to our elementary menu to choose
the next step.
This sample program also
includes several methods to save
memory. Single-letter variable
names, a space variable (S$), and
tokens in the menu cut the memory
required for this program. You can
cut more by substituting variables
for numbers, then assigning values
to the variables in command mode.
Before you enter this program,
set RAMTOP to 17376 (16514+862) on
your ZX/TS. This value corresponds
to RAMTOP for Syntactic Sum in IK.
You can now load ten bytes into the
REM statement and manipulate them.
Using the POKE option, you over¬
write 10 bytes of Syntactic Sum.
When you enter this program,
use only keywords following the
colon in line 2. When you operate
the program, just touch the key
that controls the keyword — 0 for
POKE — and the program responds.
One feature needed here, but
not implemented, is a test of K$
for keys not on the menu. If you
push an unflagged key, the program
doggedly traverses the loop ten
times, doing nothing, then returns
the menu message. SYNTAX would
love to see a memory-efficient way
6
to test for "none of the above" in
an arbitrary menu.
INPUT lets you enter decimal
code that will transform the REM
statement to a short machine-code
routine. You see the address, put
in the code, see the code next to
the address, and proceed. Enter 0
to create a NOP, or 201 to for a
return, in spaces you don't use.
LPRINT lists the byte number,
REM address, code in REM, MC
address above RAMTOP, and content
of that address to your printer.
PRINT generates the same
display on your monitor or TV.
POKE takes the bytes from the
REM statement and inserts them 862
bytes higher, above the RAMTOP you
set prior to loading the program.
STOP lets you break out of the
program to perform other operations
of your choice.
To alter the BASIC program for
Spectrum or 2068 operation, locate
the beginning address of program
space, add 5 and substitute the
result for the constant 16514.
PEEK 2 3635+256*PEEK 2 3636 gives the
address for your 2068 or Spectrum.
Set RAMTOP where you want, then
change the constant 862 to reflect
the difference in REM and RAMTOP
addresses .
Spectrum and 2068 users gain
nothing by storing machine code in
REM statements; these machines let
you SAVE machine code. But these
instructions will let you try this
reusable loop example.
You can expand this program to
handle up to 32 bytes by expanding
the REM statement and changing the
upper value of I in line 100. Do
not make those changes until the
short version works. This program
is slow and will annoy you during
testing if you also make it long.
Expanding the concept, you can
use several flag variables and more
complex tests to make user-friendly
routines with one master loop, but
many functions. Arrange the tests
(IF statements) so the most likely
choice is tested first.
RAND AND AUTORUN
RAND will not work properly on
ZX/TS machines if the program RUNS
automatically when LOADed. Type in
this program and SAVE via GOTO 40:
i_ k_- r\ n i '4 l--
Now LOAD "RANDOM" and watch the
numbers on the screen. LOAD again
and you will see the same sequence!
RAND works by counting the frames
displayed between the time the
program started running and the
execution of RAND. When RUN
automatically, this number is
always the same. Using 50 GOTO 10
instead of RUN yields the same
result. To solve this problem, add
a PAUSE before RAND, so your
program looks like this:
r~: T~i T iv iT
£=. xJ T- r*. -L I I
Harold Miller, Ph.D., Clayton GA
7
TS2068 CONNECTOR PINOUTS
This information, from TIMEX
Technical Memo #6, is supplied by
TIMEX for publication by SYNTAX.
Boldface indicates active low
or inverted signals (normally
indicated via an overline). The
letter B appended to the end of a
signal name indicates the TS2068
buffers the signal.
REAR EDGE CARD CONNECTOR
Solder Side Component Side
Sig GND
IB
1A
Sig .GND
SPK/TAPE 2B
2 A
EAR
+15V
3B
3A
A7RB
+5V
4B
4A
D7
Unused
5B
5A
DZIN
Slot
6B
6A
Slot
POW GND
7B
7A
D0
POW GND
8B
8A
D1
0
9B
9A
D2
A0
10B
10A
D6
A1
11B
HA
D5
A2
12B
12A
D3
A3
13B
13A
D4
A15B
14B
14A
INT
A14B
15B
15A
NMI
A13B
16B
16A
HALT
A12
17B
17A
_ MREOB
All
18B
18A
IOROB
A10
19B
19A
RDB
A9
2 0B
2 0A
WRB
A8 \
21B
21A
BUSAK
A7
22B
22A
WAIT
A6
2 3B
2 3A
BUSRO
A5
24B
24A
RESET
A4
25B
25A
Ml
DZOUT
2$B
2 6A
RFSHB
R
27B
27A
EXROM
G
28B
2 8A
ROSCS
B
29B
2 9A
BE
BUSISO
3 0B
30A
IOA5
VIDEO
31B
31A
SOUND
Sig GND
32B
32A
Sig GND
Pins 4-26 comprise the ZX/TS
compatible pins. Use a 64 pin 0.1"
dual readout edge card connector to
mate with this card edge. Case
clearance: 0.20" (top), 0.25"
(bottom), and 0.15" (sides).
ROS (a/k/a DOCK, TCC) CONNECTOR
Solder Component
_A14B
1
2
+5V
A12
3
4
A13B
.00
5
6
D7
D1
7
8
A0
D2
9
10
Al
D6
11
12
A2
D5
13
14
A3
D3
15
16
A15B
D4
17
18
MREOB
IOROB
19
20
A7RB
RDB
21
22
Ml
WRB
23
24
. A8
A7
25
26
A9
A6
27
28
Al 0
A5
29
30
All
A4
31
32
RFSHB
BE
33
34
EXROM
ROSCS
35
_3£_
GND
ROS stands for ROM Oriented
Software; TCC stands for Timex
Command Cartridge. Use a 36 finger
0.1" double sided edge card with a
slot between pins 4 and 6 to mate
with this connector. Cartridge bay
dimensions: 2.25" (width at
bottom), 2.55" (width at top),
0.45" (height), and 3.35" (depth,
including edge card fingers).
JOYSTICK CONNECTOR
/
/
/ 5
9
4
8
3
7
2
6
\ 1
\
\_
Pin STICK Signal Meaning
1 1 DIR1 Up
2 2 DIR2 Down
3 4 DIR3 Left
4 8 DIR4 Right
5 Unused
6 1 BUTTON Button Input
7 +5V +5V DC Power
8 RDSTB Read Strobe
9 Unused
(See pp 173-5, 2068 Manual)
Use a female 9-pin D connector
(DB9S, Atari Standard) to mate with
this. The value STICK returns
appears above. STICK reads through
the 8912 sound chip I/O port. The
actual bit value for the button on
this port is 128.
8
SIGNAL NAMES AND MEANINGS
BIORHYTHMS — 8K/1 6K
Symbol
Meanina
Signal GND
Logic Ground Ref
Power GND
Power Supply Ground
+15V
+15V DC Power
+5V
+5V DC Power
SPKR/TAPE OUT
Tape MIC jack signal
EAR
Tape EAR jack signal
R
Red Color (TTL)
G
Green Color (TTL)
B
Blue Color (TTL)
VIDEO
Composite Video
0
System clock
A0-A12
Address Lines 0-12
A13B-A15B
Address Lines 13-15
A7RB
Refresh Addr bit 7
D0-7
Data Lines 0-7
BUSISO
Bus Isolate
DZIN
Daisy Chain In
DZOUT
Daisy Chain Out
INT
Interrupt Request
NMI
Non-maskable Intrpt
HALT
CPU Halt Output
MREQB
Memory Request
IORQB
Input/Output Request
RDB
Read
WRB
Write
BUSAK
Bus Acknowledge
WAIT
CPU Wait Output
BUSRQ
Bus Request
RESET
CPU Reset Input
Ml
CPU Ml State Output
RFSHB
Refresh
EXROM
Extension ROM Enable
ROSCS
ROS Chip Select
BE
Bank Enable
I0A5
8912 I/O Port bit 5
SOUND
8912 Sound Output
BUSISO tristates all buffered
signals (those ending in B) . IOA5
is the 8912 I/O port bit not used
by the joystick circuitry. RGB
color signals do not include sync
(sync must be stripped off VIDEO).
NOT ENTIRELY CLEAR — 8K/1K
Enter this line by hitting 1,
CLEAR, cursor back, REM, NOT, /.
Execute via RAND USR 16514.
Dan Tandberg, Albuquerque NM
I wrote this program as a
result of a great disappointment I
experienced after purchasing a
Biorhythms program from one of the
prominent software companies. The
program did not print an accurate
set of curves, and did not print a
mathematically correct result.
I developed a printing routine
first, which works on a PLOT,
PRINT, UNPLOT basis, allowing a
sine plot made of letters. The
positive half of the curve usually
prints first, then the rest of the
curve in reverse (negative STEP).
Biorhythms computes time (T) in
days and divides it by each cycle
length to get the number of cycles
since birth. It decides where to
print each curve by converting the
fraction of each cycle remaining to
X PLOT coordinates (J) relative to
the date line. The date line
displays 2 pixels offset (column
16) to make it read accurately.
With 15 days on each side of
the graph date, the completed chart
represents a 31-day time spread.
Relevant information appears at the
top and bottom of the display, for
a permanent record if you COPY.
Each date displays after
INPUT. After you enter a name,
Biorhythms goes into fast mode,
usually making the time and offset
computations in under 3.5 seconds.
The graph printing, taking about a
minute and a half, is rather
interesting to watch (you wonder
where the next curve will hit).
After typing the program, SAVE
it with GOTO 1000. It will run as
soon as SAVEing completes and after
LOADing. Prompts are adequate, but
if the program stops a simple "GOTO
150" will bring it right back.
Important variables:
T = Time in days
W = Number of cycles since birth
J = Sets start pt of sin print
L = Sets start pt of back print
9
Lines 5-45 . Intro display
Lines 145-275 .... Prompts and Input
Lines 297-360. .. .Graph Print + Info
Lines 37 0-600. .. .Sin Print P,E,I
Lines 61 0-71 0. .. .More prompts and
terminate display
Lines 82 0-885 ... .Time Computation
Lines 89 0-986 ... .X-Axis Offset
Computations
This program uses up about
6.2K of RAM. I have an enhanced
version with more user-friendliness
and error-trapping features that
also prints out a compatibility
factor between two persons when
given the birth dates of each,
within a 10% range for each curve.
It uses a little more than 15K of
RAM and includes a brief
explanation of biorhythm theory.
I will furnish the extended
15K version by mail to anyone for
$10.00 post paid.
Doug McRoy
5 Pfister St
Laurel, MD 20707
lO
DEAR EDITOR:
For a TS2068 version of Dave
Wood's HIGH LINE NUMBERS (SYNTAX
Dec. 83 p4) you need only add two
PEEKS which locate the line number
bytes in memory. Line numbers
store as high byte followed by low,
reversed compared to most other 16-
bit quantities.
On your TS2068, enter as line
1 the line which will be last in
the listing (highest line number).
Then use this direct command:
LET a=PEEK 23635+PEEK 23636*256:
POKE a, (hi byte): POKE a+l,(lo byte)
Write down decimal values of POKEd
lines (high byte*256+low byte); any
line numbered higher than 16383
(63*256+255) won't show on-screen.
To add more high-number lines,
enter the next highest line in the
listing as line 1. As long as RUN
or CLEAR have not been used after
defining a in memory, use the
direct command:
POKE a, (hi byte):POKE a+l,(lo byte)
The highest possible line number is
32767 (hi byte=127 & lo byte=255).
Only lines numbered less than
16383 will function with a normal
RUN command, GO TO, or GO SUB.
Lines numbered from 16384 to 32767
will function only by a direct RUN
or GO TO and then execute only the
statement contained in that line —
useful only as a curiosity or to
store listings off-screen. When
lines numbered 1-9999 are pushed
off-screen by a line numbered from
16384 to 32767, and a GO TO is then
made to the high-numbered line, it
will be processed along with the
normal lines which follow it in the
listing order.
To EDIT the last line entered,
if it doesn't show on-screen, enter
the direct command POKE a,l. Lines
10,000 to 16383 may be brought down
with EDIT, re-numbered to less than
10,000, revised, and POKEd back to
a high number. You can calculate
the location of line number bytes
after the first line in a listing,
but otherwise the only way to EDIT
a line POKEd above 9999 is to
delete all preceding lines in the
listing, both on- and off-screen.
For locating start of 2nd line:
1 LET a=PEEK 23635+PEEK 23636*256
2 PRINT "Demo"
3 FOR n=a TO a+1000
4 IF PEEK n=l 3 THEN LET a=n+l :
GO TO 10
5 NEXT n
10 POKE a, 10
20 LIST
In comment on the "New image"
Timex now has for their 1-800-
24-TIMEX customer support service,
in contrast to the rather vague
responses most of us received in
the past, they very helpfully
provided me with a schematic, I/O
map, and pin-out as well as an
approximate availability date on
the forthcoming TS2 000 Advanced
Programming Concepts Manual. I
greatly appreciate this kind of
support and, judging from the
amount of time it took me to get a
free line on the TIMEX number, I am
sure there are many others.
Robert Hartung, Palmyra, NY
SYNTAX (Aug. 82 pl9) describes the
illegal line number 3E00H (15872)
as the marker for the top of the
GOSUB stack in ZX/TS machines. The
Spectrum uses the same marker, but
we don't know about the 2068. — KO
MAINTAINING THE ZX81
Calling 1-8 00-24-TIMEX seems
an exercise in futility. After 4
days of 20-30 calls per day, I gave
up. Only twice did I get a ring.
On these two occasions the nice
recorded voice told me "everyone is
busy, please be patient, someone
will soon help you." In about ten
seconds, the line disconnected.
I was trying to call about a
replacement ULA chip for my TS1000,
out of warranty, modified circuit
12
board system. I guess I zapped it
with body electrostatic charge,
although it broke out while typing
in a program.
Testing the system using an
oscilloscope I found no clocked
signals associated with ROMCS and
RAMCS (6.5 Mhz clock was OK).
Since contacting TIMEX was a
total failure, I then spent about
$30.00 on phone calls, eventually
locating a TS1000. Believe me, the
inventory of TS1000 computers in
the US is very close to zero. If
Syntax readers want to obtain a
"spare" for their upgraded ZX/TS
systems, I advise them to act now.
Sunset Electronics (415/665-8330),
still has a few at $29.95 as of
this writing. Some twenty other
suppliers I called have none and
cannot get more. For $29.95 plus
shipping I can get a spare set of
ULA and ROM chips for my future
needs. I suspect a spare ULA chip
would, itself, cost up to $20.00,
if one could be found.
US replacements for British
transistors: Sylvania ECG-123AP
replaces ZTX-313; ECG-391 replaces
ZTX-750 and ZTX-752. Almost any
"signal diode," such as 1N34A, will
replace any diode on the board.
The crystal located in the circuit
between pin 35 of the ULA chip and
pin 26 of the Z80 CPU, can be
replaced with an ordinary JAN 6.5
MHz crystal (smallest metal can
crystal with axial leads). All
other parts on the circuit board,
except the ULA and ROM chips, may
be purchased off the shelf.
Bill Jones, Panama City, FL
Use 1N914 or 1N4148 diodes for the
higher forward drop of Silicon. — KO
I think your readers would
appreciate the answers to the
following questions:
1) Why does the Timex 2 04 0
printer emit heat from its top vent
even though I have pressed the
"OFF" button and haven't used the
printer in days?
2) The new Timex 2068 computer
only seems to have 38K available
for programming (16K "BASIC" and
22K "VARS"); why?
3) What peripherals can be
used safely with the Timex 1500
computer? (e.g. when I plugged in
my 16K Sinclair Rampak the computer
went blank and I had to send it
back to the supplier. I hear there
are problems if you use a Memopak
64K and other hardware not
manufactured by Timex).
Wm. McConaghey, Pembroke Pines, FL
TS2040 printers emit heat when off
because the switch doesn't turn off
the 24V printhead power.
Most computers use some RAM to
perform functions that permit your
programs to operate. Sharon Aker
reports that the Commodore 64 also
allows only 38911 bytes for users
compared with 38652 in the TS2068.
Page 254 of the user's manual shows
how a 2 068 uses memory. I know of
no 16K BASIC limit in 2068's, but
SYNTAX has discussed it at length
for ZX/TS operation, including ways
to get around it. (Sep. 82 pl3; SQ
Summer 83 p47 & Nov. 83 pl2)
TS1500 computers will operate
with any accessory that doesn't use
RAMCS to disable the internal RAM.
On 15 00's, RAMRM moves the internal
RAM to 32-48K and leaves it active.
Sinclair RAMpaks do work, and Byte-
Back memories and modules operate
(SYNTAX Nov. 8 3 pl4). We hear that
some 15 00's would not drive Timex
printers, and the 2040 printer will
destroy the data-line timing. See
SYNTAX Nov. 83 p2 for details of the
fix for 2040-generated problems — KO
PLEASE: Check SYNTAX back issues
before you write. We can't reply
to individual technical letters or
republish data. We must devote our
resources to new problems. Phone
617/456-3661 or buy a Works.
13
RENUMBER — 8K/1 6K
Utility programs for
renumbering the lines of BASIC
programs facilitate merging with
other programs, spreading out line
numbers to make room for additional
lines, and neatening up finished
programs. Changing line numbers is
easy, but a useful renumbering
utility must also fix the
destination line numbers in GOTOs
and GOSUBs, a more difficult task.
This program does the job, although
slowly since it is written almost
entirely in BASIC.
If you have a program merging
utility, RENUMBER can be appended
to, and used to renumber, any BASIC
program of less than about 12,000
bytes (provided its line numbers
initially extend no farther than
9722). Even without a merge
utility, RENUMBER can still be
useful. LOAD it first, then key in
your main program as you develop
it.
Note the partial Syntactic
Sums given at several points in the
listing. When typing in RENUMBER,
get a Syntactic Sum at each of
these checkpoints and correct any
mistakes before proceeding. This
will reduce the number of lines you
need to search to find your error.
Since this is a self-starting
program, the final Syntactic Sum
reflects the program after it has
been SAVEd and then LOADed from
cassette .
After typing in RENUMBER, SAVE
it to cassette with the command
GOTO 9976. Whenever LOADed it will
self-start and execute Lines 9978
to 9994, storing two machine
language subroutines into high
memory. You must set RAMTOP to
address 32512 or lower, and NEW to
reinitialize the machine stack
prior to loading RENUMBER. The
machine code loads at addresses
32512 to 32542. It is relocatable,
but this requires appropriate
changes in Lines 9890, 9892, 9904,
9982, 9990, and 9996.
RENUMBER ignores any GOTO or
GOSUB whose destination line number
does not begin with a digit. With
this exception, RENUMBER correctly
handles the renumbering of all (or
any part of) a BASIC program.
You must specify what part of
the target program is to be
renumbered, the new starting line
number, and the desired increment
between line numbers. If only a
portion of the target program is
renumbered the user must be very
careful in selecting the new
starting number and the increment.
The line numbers that result from
renumbering must be consistent with
(i.e., in correct numerical order)
the rest of the program, otherwise
the resulting program may crash.
Note that entering 0 in response to
the first prompt renumbers the
entire program.
RENUMBER starts by searching
the entire program, line by line,
(main search routine starts at line
9826) looking for IF, GOTO, or
GOSUB statements. When an IF
statement is found, the rest of
that statement is scanned to see
whether it contains a GOTO or
GOSUB. If so, the program jumps to
the GOTO/GOSUB processing routine
at Line 9848. Otherwise it jumps
back to the main search routine.
Line 9842 avoids misinterpreting
bytes within floating point numbers
as GOTO or GOSUB tokens, ignoring 5
bytes following code 126.
The core of the prpgram begins
at line 9848, the GOTO/GOSUB
processing routine. After the
token for GOTO or GOSUB Sinclair
BASIC puts the codes for the
decimal digits of the destination
line number, then a "number" token
(code 126), then five bytes holding
the number in floating-point binary
form, then a newline character
(code 118). Lines 9848 to 9860 put
the characters following GOTO or
GOSUB into D$ if it is a number,
but if the first destination
character is non-numeric it jumps
back to the main search routine.
14
Lines 9862 to 9874 determine
whether or not the number in D$ is
a bona-fide line number within the
part of the program being
renumbered. If not, RENUMBER jumps
back to the main search routine,
without making any changes.
Otherwise, it determines what
position that line occupies in the
section of the program being
renumbered and puts that position
number into variable DC. The new
line number will be the position
number times the step size plus the
new starting line number.
Both the old line number and
the new line number may have
anywhere from one to four digits (1
to 9722). If the new number is
shorter than the old, lines 9886
and 9888 put enough leading zeroes
in front of the new number to make
it the same length as the old. But
when the new number is longer than
the old, RENUMBER makes room for it
in the program line by moving the
rest of the target program
(including all of RENUMBER itself)
upward in memory by one, two, or
three bytes. There is a suitable
"make room" routine already
available in the system ROM, at
address 2459. It moves the memory
block starting at the address
pointed to by register pair HL and
ending at the end of the program,
one byte up, adjusting the system
variables accordingly.
Lines 9890 and 9892 POKE into
memory locations 32512 and 32513
the address to load into HL. The
FOR. ..NEXT loop beginning at line
9894 makes one or more USR calls to
the machine code routine at address
32514, which in turn loads the
stored address into register pair
HL and calls the ROM routine to
"make room". This loop also
adjusts the length bytes of the
newly expanded program line.
The "make room" routine moves
the bytes of the BASIC line that
called it, resulting in the return
address being off by one byte and,
normally, a crash. BASIC can
easily be tricked into returning to
the correct address: Line 9902
gets the address of Line 9904 from
system variable NXTLIN and POKES
the length of line 9904 so it is
one byte too high (15 instead of
14). After the "make room" routine
executes, it returns to the
location 15 bytes after line 9904.
Line 9904 is 14 bytes long, plus
the one byte it has been moved by
the "make room" routine, so the USR
routine returns to the correct
address. Immediately after each
USR call the phony length of 15 is
corrected to the proper figure of
14 by Line 9906. This line gets
the address of line 9908 from
system variable NXTLIN and looks
backward 77 bytes (the total length
of Line 9906 plus part of Line
9904) to the address of the low
length byte of line 9904.
Lines 9910 to 9914 POKE the
codes for the decimal digits of the
new line number into the program
line. Then Line 9918 gets the
address of program variable ND from
system variable VARS. Variable ND,
originally defined in line 9738,
contains the value of the new line
number in floating-point form, so
Lines 9920 to 9924 simply copy
those five bytes into the program
line, over-writing the original
number. This process repeats for
each line in the program containing
GOTO or GOSUB. Finally, lines 9940
to 9950 renumber the lines within
the range initially specified.
You can erase RENUMBER
completely with these two commands:
GOTO 9996 ENTER
9724 ENTER
Line 9996 invokes the machine
code routine at address 32521,
which calculates the total length
of RENUMBER and POKES that number
minus 4 into the length bytes of
line 9724. Thus when you delete
line 9724 the entire RENUMBER
program goes with it, leaving your
finished main program intact.
C. C. Stalder, Orlando FL
15
I
16
ADDR
7F00
00005
00006
DFILE
40 OC
00003
00016
ERASE
7F09
00010
MAKER
7F0 2
00006
In Stock! ALL NEW MD-2
SMA*T MODEM $119.”
ASSEMBLED & TESTED $149.95
• Send Text from Memory
• Send and receive Programs by Phi
• Copy Information into memory i
Print it. Review it. Save it on Tapei
• Use Timex 2040 Printer or RS-232 ^
• RS-232 Printer Port provided
• No extra memory Required.
COMPUSERVE PACKAGE WITH 5 'FREE HOUI^^iY$39 95
64-K MEMORY $109’5k.t
the “ULTIMATE MEMORY” $119.95 ASSEMBLED
FEATURES:
• Battery Backup • PROM/ROM socket
• Reset Switch • BYTE-BACK EXCLUSIVE FULL 64-K
WHY PAY MORE FOR LESS FEA TURES?
GET THE “ULTIMATE MEMORY” 8 YTRSACI^S UM-64
KEYBOARD . $59.95
GORILLA/BANANA PRINTER . $239.”
NEW ZX PRO/FILE Including shipping
Clearly the Best File Management Program Available.
RS-232 PRINTER INTERFACE Only $59.* KIT$69.M ASSEMBLED
CONTROL MODULE 8 Relays, 8 Inputs, $59.” KIT $69. w ASSEMBLED
16K MEMORY UM16 $59.»5 KIT$69.»5 ASSEMBLED & TESTED
Battery Backup, reset switch, PROM/ROM socket PLUS . . .
1 year, 100% Trade-in credit towards the UM-64.
BYTE BACK CO.
Rt. 3, Box 147, Brodls Road
Leesville, S.C. 29070
ORDER PHONE 803-532-5812
Add $4.95 shipping and handling
90 Day Warranty On All Modules. 10— Day Return Prlviledge
400C
00001
00002
00003
DFILE
7F00
7F00
0000
00004
00005
ADDR
7F0 2
2A007F
00006
MAKER
7F05
CD9B09
00007
7F0 8
C9
00008
7F09
21FC25
00009
0001 0
ERASE
7F0C
CDD809
0001 1
7F0F
23
0001 2
7F1 0
23
0001 3
7F1 1
23
0001 4
7F 1 2
EB
00015
7F1 3
2A0C40
00016
7F1 6
A7
0001 7
7F 1 7
ED52
0001 8
7F19
EB
00019
7F 1 A
IB
00020
7F1B
72
00021
7F1C
2B
00022
7F1D
73
00023
7F1E
C9
00024
; RENUMBER MACHINE CODE
EQU
1 6396
ORG
32512
DEFW
0
LD
HL , (ADDR)
CALL
RET
2459
LD
HL ,9724
CALL
2520
INC
HL
INC
HL
INC
HL
EX
DE , HL
LD
HL , (DFILE)
AND
A
SBC
HL ,DE
EX
DE , HL
DEC
DE
LD
(HL) , D
DEC
HL
LD
RET
(HL) , E
; ADDRESS POKED IN BASIC
; GET ADDRESS IN HL
; CALL "MAKE ROOM"
; BACK TO BASIC
; FIRST LINE # IN RENUM
; LOOK UP ADDRESS
; POINT HL TO HIGH
; TEXT LENGTH BYTE
; OF LINE 9 724
; SAVE HL IN DE
; HL= ADDRESS OF DFILE
; CLEAR CARRY FLAG
; HL=# PROG BYTES MINUS 3
; RECOVER LEN PTR IN HL
; DE=# PROG BYTES MINUS 4
; CHANGE HI BYTE LEN 9 724
; CHANGE LOW BYTE LEN 9 724
; BACK TO BASIC
17
PI — 8K/16K
This program can calculate PI
to over 8000 decimal places — but
don't hold your breath. It takes
over 12 hours for 512 digits! The
algorithm uses base 100 arithmetic,
storing each digit in one byte of a
character string (codes 0-99). It
is based on the Taylor series for
the arctangent.
First PI prints out 8 digits,
then it starts all over again and
does 16, then 32 , 64 , etc. If you
don't have a printer, change all
the LPRINTs to PRINTS and add a
STOP at line 6095. Go on to the
next calculation with CONT.
Since the program allocates
12K of RAM for the accumulators
A$ (1 ) , A $ ( 2 ) , and A$(3), CLEAR
before SAVEing to avoid storing
lots of variable space to tape.
Blanchard D. Smith
Alexandria VA
For the TS2068, translate with
FIRSTLOADER (SYNTAX, Dec. 83), then
delete lines 60 and 70, add 55, and
replace 180:
18
KALEIDOSCOPE — 8K/16K
I resorted to machine code in
an effort to write a fast program
to display a kaleidoscope pattern
on the ZX/TS screen. The resulting
images may be viewed on the screen
and printed out at will.
In order to get random numbers
for the plot locations in machine
code, I used the FRAMES system
variable (locations 16436 and
16437) to set a pointer into the
ROM. The program reads bytes out
of the ROM and increments the
pointer for each random number. If
the pointer goes too high, it is
reset to 0. This method shows no
visible signs of repetition.
To enter KALEIDOSCOPE, type in
listing 1. Put 145 spaces after
the message in line 1, and no space
between "KALEIDOSCOPE" and "PRESS".
Line 20 contains 32 spaces. RUN
the program and enter the numbers
in table 1. For each number, the
display will show an address and
wait for you to enter the contents.
After you enter a number it will
appear on the screen. If correct,
hit ENTER, otherwise press any
letter key and reenter the number.
After entering all 144 numbers, the
Syntactic Sum should be 29651.
Now delete lines 10-100 by
entering each line number. Type in
lines 10-50 as shown in listing 2.
Be sure you are in SLOW mode,
then set your cassette to record
and RUN. The program SAVEs
automatically and RUNs when LOADed.
When done SAVEing, the title will
appear on the screen for a few
seconds, and then the screen will
begin flashing somewhat random
patterns. Press any key and the
main part of the program will
begin. To print a copy of the
screen, hit any key. You can save
a picture on tape by changing line
30 to SAVE "KALEIDOSCOPE". The
program stops if you press BREAK.
[This program can generate
three-dimensional effects if you
print out the screen twice with a
small time for the pattern to
change in between. Hold the output
sideways and cross your eyes until
the two patterns merge; some points
appear to recede into the paper and
some appear
to
jump
out,
i
Ed.]
Scott
H. McGur
r in.
Macedon NY
42
12
64
1
2 08
0
9
2 35
33
130
64
1
12
0
2 37
176
2 35
1
25
1
9
2 35
1
22
0
237
176
17
0
200
27
122
179
32
251
237
87
60
237
71
2 05
187
2
36
40
245
62
30
2 37
71
2 05
42
10
2 05
187
2
36
32
250
42
52
64
203
180
203
188
70
35
2 03
176
2 03
184
62
43
184
56
245
78
35
203
177
2 03
185
126
35
203
71
32
3
175
24
2
62
128
245
2 05
41
65
62
43
144
71
241
245
2 05
41
65
62
63
145
79
241
245
2 05
41
65
62
43
144
71
241
2 05
41
65
229
2 05
187
2
36
225
40
186
2 01
197
229
50
48
64
2 05
178
11
225
193
2 01
Table 1. Numbers to POKE
19
00001
; KALEIDOSCOPE MACHINE
CODE
00002
400C
00003 DFILE
EQU
16396
4034
00004 FRAMES
EQU
16436
•
4082
00005
ORG
16514
4082
2A0C40
00006 PRINT
LD
HL , (DFILE)
4085
01DD 00
00007
LD
BC ,208
4088
09
00008
ADD
HL , BC
4089
EB
00009
EX
DE , HL
408A
218240
0001 0
LD
HL ,16514
; PRINT MESSAGE ON SCREEN
408D
010C00
0001 1
LD
BC, 1 2
4090
EDBO
00012
LDIR
4092
EB
0001 3
EX
DE ,HL
4093
011901
0001 4
LD
BC ,281
4096
09
00015
ADD
HL , BC
4097
EB
00016
EX
DE , HL
4098
011600
0001 7
LD
BC , 2 2
409B
EDBO
0001 8
LDIR
409D
1 100C8
00019 PAUSE
LD
DE ,51 200
; TIMING LOOP
40A0
IB
00020 PLOOP
DEC
DE
40A1
7A
00021
LD
A ,D
40A2
B3
00022
OR
E
40A3
2 OFB
00023
JR
NZ , PLOOP
40A5
ED57
00024 DISP
LD
A, I
; DISPLAY SCRAMBLING
40A7
3C
00025
INC
A
; ROUTINE
40A8
ED 4 7
00026
LD
I, A
40AA
CDBB02
00027
CALL
699
; KEY PRESS?
40 AD
24
00028
INC
H
4 OAE
28F5
"00029
JR
Z , DISP
40B0
3E1E
00030 FIX
LD
A, 30
; RETURN TO NORMAL
40B2
ED47
00031
LD
I, A
; DISPLAY
40B4
CD2A0A
00032
CALL
2602
; CLS
40B7
CDBB02
00033 WAIT
CALL
699
; WAIT UNTIL NO KEY
4 0BA
24
00034
INC
H
40BB
2 OFA
00035
JR
NZ , WAIT
40BD
2A3440
00036
LD
HL, (FRAMES)
; POINTER INTO ROM
40C0
CBB4
00037 RESET
RES
6 , H
; TRIM OFF EXCESS BITS
40C2
CBBC
00038
RES
7,H
40C4
46
00039 VALS
LD
B, (HL)
; RANDOM Y VALUE
40C5
23
00040
INC
HL
t
40C6
CBBO
00041
RES
6 , B
i
40C8
CBB8
00042
RES
7,B
4 OCA
3E2B
00043
LD
A, 43
40CC
B8
00044
CP
B
40CD
38F5
00045
JR
C , VALS
; GO BACK IF TOO HIGH
40CF
4E
00046
LD
C, (HL)
; RANDOM X VALUE
40D0
23
00047
INC
HL
4 GDI
CBB 1
00048
RES
6 , C
40D3
CBB9
00049
RES
7,C
40D5
7E
00050
LD
A, (HL)
40D6
23
00051
INC
HL
40D7
CB47
00052
BIT
0 , A
40D9
2003
00053
JR
NZ , UNPLOT
4 ODB
AF
00054
XOR
A
; 0 FOR PLOT,
40DC
1 802
00055
JR
DOPLOT
; 1 2 8 FOR UNPLOT
20
40DE
3E80
00056 UNPLOT
LD
A , 128
40E0
F5
00057 DOPLOT
PUSH
AF
; SAVE AF
40E 1
CD0741
00058 PLOT 1
CALL
PLOT
; PLOT THE POINT
40E4
3E2B
00059
LD
A, 43
; GET SECOND POINT
40E6
90
00060
SUB
B
40E7
47
00061
LD
B , A
40E8
FI
00062
POP
AF
40E9
F5
00063
PUSH
AF
40EA
CD0741
00064 PLOT2
CALL
PLOT
; PLOT THE POINT
40ED
3E3F
00065
LD
A, 63
; GET THIRD POINT
4 OEF
91
00066
SUB
C
40F0
4F
00067
LD
C , A
40F 1
F5
00068
PUSH
AF
40F2
F 1
00069
POP
AF
40F3
CD0741
00070 PLOT3
CALL
PLOT
; PLOT THE POINT
40F6
3E2B
00071
LD
A , 4 3
; GET FOURTH POINT
40F 8
90
00072
SUB
B
40F9
47
00073
LD
B,A
40 FA
FI
00074
POP
AF
4 OFB
CD0741
00075 PLOT 4
CALL
PLOT
; PLOT THE POINT
40FE
E5
00076 COPY
PUSH
HL
40FF
CDBB02
00077
CALL
699
; KEY PRESS?
4102
24
00078
INC
H
4103
El
00079
POP
HL
4104
2 8 BA
00080
JR
Z , RESET
; LOOP IF NOT
4106
C9
00081
RET
; OTHERWISE RETURN
4107
C5
00082 PLOT
PUSH
BC
; SUBROUTINE TO PLOT
4108
E5
00083
PUSH
HL
4109
323040
00084
LD
( 16432) , A
; PLOT STATUS
4 1 OC
CDB20B
00085
CALL
2994
; PLOT/UNPLOT
4 1 OF
El
00086
POP
HL
4110
Cl
00087
POP
BC
4111
C9
00088
RET
COPY
40FE
00076
DFILE
40 0C
00003
DISP
40A5
00024
DOPLOT
40E0
00057
FIX
40B0
00030
FRAMES
4034
00004
PAUSE
409D
00019
PLOOP
40A0
00020
PLOT
4107
00082
PLOT 1
40E1
00058
PLOT 2
4 0EA
00064
PLOT3
40F3
00070
PLOT 4
40FB
00075
PRINT
4082
00006
RESET
4 0C0
00037
UNPLOT
4 ODE
00056
VALS
40C4
00039
WAIT
40B7
0 0 0 3 3
00006
00029
00055
00036
00023
00058
00070
00080
00053
00045
00035
00064
00075
21
TS2068 PORT ASSIGNMENTS
CLASSIFIED ADS:
Timex provided SYNTAX with the
following chart, referred to on
page 214 of your 2068 manual. This
chart is what you would receive if
you contacted Timex Corporation for
port assignments.
012345678
0
1
2
3
4
5
6
7 9 9
8 6 6 6 6 A 6
9 6 6 6 6 6
A 6 6 6 6 6
B 6 6 6 6 6
C 6 6 6 6 6
D 6 6 6 6 6
E 6 6 6 6 6
F666624586
012345678
9 A B C D E F
0
1
2
3
4
5
6
7
6 6 6 8
6 6 6 9
6 6 6 A
6 6 6 B
6 6 6 C
6 6 6 D
6 6 6 8 E
6667713F
9 A B C D E F
In the table, the vertical borders
show the most significant hex digit
and the horizontal borders show the
hex digit of less significance.
Table entries indicate devices from
the numbered list that follows.
1. RD
WR
2. RD/WR
3. RD/WR
4. WR
5. RD/WR
6.
7.
8.
9.
A. RD/WR
Keyboard/Cassette
Border /Beep/Cassette
Dock Horizontal Select
Enhancement Port
Sound Chip Address
Sound Chip Data
TS2040 Printer
Bank Switching
Micro-Drive
Modem
Centronics Interface
Blanks in the table indicate ports
available for use as of 2 Nov. 83.
Reach thousands of ZX/TS users — for
just $9/line! Send your typed copy
(35 characters per line) with check
or MO to reach us by the 15th to be
published in the next issue exactly
as typed. No fractions or cent
symbols. Include your phone No.
SYNTAX Classified,
RD 2, Box 457, Harvard, MA 01451.
Just 300 bargains available — order
only by phone, pay only by credit
card — The ZX81/TS1000 Home Computer
Book by David C. Foyt. Shipped to
you for $1 0+$1.5 0 P&H: 617/456-3661
STARBURST SOFTWARE now has 18 soft¬
ware programs : Business, Hobby , Games ,
Educational , Utility . Send SASE+$1
to:2214 Horine Rd.,Festus, MO 63028
E-Z KEY Has a SPECIAL SALE!
TS1016 16K RAM $19.95 Supply
limited-Phone orders only-
(617)773-1187 Also available WORD
SINC II $19.95 a full featured
WORD PROCESSOR for your TS1000 or
TS1500 & TS2040 printer.
XFORTH, FORTH-79 FOR 16K ZX/TS WITH
ONE PASS LOAD, FULL THREADED CODE,ZX
CODE TABLES. SUPPORT VIA USER NEWS¬
LETTER. XFORTH $25.00. W/ F.P. EXT
ADD $15.00. ADD $1.00 EACH P. & H.
***NEW***HAWG WILD "HAM HACKER" (TM)
SERIES FOR ZX/TS RADIO AMATEURS****
MORSE CODE (16K)/TW0 K CODE-BOTH ON
ONE TAPE . $14.95 + $1.00 P&H
MINIMUF 3.5 - 16K RADIO PROPAGATION
(DXERS MUST!) ..$17.95 + $1.00 P&H
CE AMP (FROM SYNCWARE) 16K CIRCUIT
DESIGN/TEST.... $19.95 + $1.00 P&H
FOOTBALL FORECASTER NOW AVAILABLE
FOR U.S.F.L.. $17.00 PLUS $2.00 P&H
ARK RES ADD 5% TAX. **HAWG WILD
SOFTWARE, BOX 7668, LITTLE ROCK AR
72217**WE HAVE THE JUPITER ACE**
Next month in SYNTAX we'll
discuss the advanced video modes of
the TS2068. You can find some
information on this subject in the
2068 manual, appendix C.
"TS1 000/2 068 CANADIAN FEDERAL IN¬
COME TAX RETURN. $9.95 + 1.50 P
and H. Ont. res. add 7 pc PST.
JM SOFTWARE, 1852 Appleford St.,
Gloucester, Ontario, K1J 6T4"
22
SYNTAX is published monthly by a wholly-
owned subsidiary of The Harvard Group.
Syntax ZX80, Inc.
RD 2, Box 457, Harvard, MA 01451. Telephone
617/456-3661.
12 issues, $29. Single issue, $4.
Publisher:
Consulting Editor:
Technical Consultant:
Kirtland H. Olson
Ann L. Zevnik
Kirtland H. Olson
© Syntax ZX80, Inc., 1984. All rights reserved.
Photocopying prohibited. ISSN 0273-2696
OUR POLICY ON CONTRIBUTED MATERIAL
SYNTAX invites you to express opinions related to any Sinclair computer or
peripheral, or the newsletter. We will print, as space allows, letters discussing items
of general interest. Of course, we reserve the right to edit letters to a suitable length
and to refuse publication of any material.
We welcome program listings for all levels of expertise and written in either
Sinclair BASIC or Z80 machine code. Programs can be for any fun or useful
purpose. We will test run each one before publishing it, but we will not debug
programs; please send only workable listings. Programs submitted on cassette can be
tested more quickly and with less chance of error.
In return for your listing, we will pay you a token fee of $2.00 per program we
use. This payment gives us the nonexclusive right to use that program in any form,
world-wide. This means you can still use it, sell it, or give it away, and so can we.
We will consider submissions of news and hardware or software reviews. Please
keep articles short (350-400 words). Again, we reserve the right to edit accepted
articles to a suitable length. We will pay 7 cents per 6 characters, including spaces
and punctuation, for accepted articles.
When you send in programs for possible publication in SYNTAX, please
include the following information:
• How to operate the program, including what to input if it does not contain
prompts.
• Whether you can run the program over again and how.
• How to exit the program.
• The Syntactic Sum (program published in Feb. 81 and Jun. 81; send SASE
for a free copy).
• What RAM size program requires.
• What ROM program uses.
We pay for this explanatory text at the same rate as for articles in addition to
payment for the program itself.
If you want us to return your original program listing or article, please include
a self-addressed, stamped envelope. Otherwise, we cannot return submitted material.
16K* * * * * CAVE MAZE * * * * *16K
Fast action 3D Maze. MC display
Never the same. Only $7.00 P.P.
Doc's Software 4339 Keysville Ave.
Spring Hill, Fla. 33526
HOW TO MARKET YOUR T/S SOFTWARE
Turn your program into profits with
this comprehensive guide - pricing,
advertising, publishing, royalties,
market trends, plus many references
$14.95 VISA, MC, MO, check
SOFTMARK ASSOCIATES, DEPT SX2
210 Fifth Ave, New York, NY 10010
***** LEARN ASSEMBLER EASILY *****
* Machine code doesn't load? *
* Find textbooks confusing? *
*********** ZX81 - 16K ***********
Loader/saver program on cassette
with instructions and intro booklet
$14.95 (CA add 6%) + $1.00 P&H CK/MO
ORANGE COAST SOFTWARE CORPORATION
PO Box 951, Midway City, Ca. 92655
16K PERSONAL FINANCE PROGRAM TAPES
****RETURN ON INVESTMENT****
Evaluate stocks, real estate, money
funds, savings, etc. Rate of return
& Gain/Loss. Compare investments.
******INCOME PORTFOLIO******
Monthly & annual record & graphics.
Excellent income tax data record.
**Self prompting & Printer copies**
$14.95 each, $24.95 both. Check or
money order. RAE, 604 Danley Drive,
Fort Myers, FL 33907
Fill out the coupon below and mail it to: SYNTAX RD2 Box 457, Harvard, MA 01451
sl/84
□ My check is enclosed. □ Please charge my □ VISA
Make checks payable to: □ Diners Club D American
SYNTAX ZX80. Inc Express □ Mastercard
□ Carte Blanche account
Account number
YES! Please send me:
□ The Combination II (13 issues of SYNTAX and SQ Winter
82-Summer 83) . $39
□ The Catch-up II (SYNTAX Jan. 82 -Jan. 84, SQ Winter 82-
Summer 83, plus 1 binder) . $77
Exp. date _ Bank number (MC only) _
Signature _ _ _ _
Name _
Address _ _ _
City _ State _ Zip _
Day phone ( ) _ Evening phone ( )
□ My subscription number is: _
□ This is a new subscription
□ The Works II (SYNTAX No. 80-Dec. 83, SQ Winter 82-
Summer 83, plus 2 binders) . $97
□ 12 issues of SYNTAX . $29
□ 3 issues Syntax Quarterly (Winter 82 -Summer 83) . $25
□ 1 issue Syntax Quarterly □ Winter 82 □ Spring 83
□ Summer 83 . $9
□ 1 Binder . $9 □ 1 issue of SYNTAX . $4
Telephone orders call
617-456-3661
These offers expire 3/31/ 84 — SUBSCRIBE NOW.
23
LAND SURVEYING PROGRAMS: Prog.No.
l -,,COORDlNATES"-computes survey
coordinates , area of any configura¬
tion; incl . inverse mode. Prog. No. 2-
"VERTICAL CURVE "-computes Vert.
Curve data in tabular form, inc.
Tan. &Vert .Curve Elev.,Low Pt.,High
Pt .Sta . & Elev. $14.95 for each prog
chk/MO to Paul F. Seymour, P.E.,
P.O. Box 11, Hamburg, N.J. 07419.
TS USER, the full and candid news¬
letter is now 16 pages a month
with no ads. All of volume 2 is
available for $10.95. Get a manual
on office automation with your
Timex. Subscribe now to avoid a
March 1st price increase. Send a
check or M/0 for $16.95 for 12
issues to: YAGSEE PUBLISHING, POB
155, VICKSBURG, MI, 49097. Save
yourself hours and dollars by sub¬
scribing now to the largest sell¬
ing unsponsored Timex-related pub¬
lication in the Universe!! I !!!!!! !
Sample issue $2.95. Write now to
see who had most material in 1983.
DO SOMETHING USEFUL WITH A COMPUTER
Useful software with useful manuals
(16k ZX & T/S). How to use it, how
it works, how to modify it .
Menu driven, just load and go!!!!!!
SEND FOR CATALOG. .Kendric C. Smith,
927 Mears Court, Stanford, CA 94305
H\RV\RD
GROU-*
Bolton Road, Harvard, Mass. 01451
MR WILLIAM TOMLINSON
3635 RIVEREDGE OR.
JACKSONVILLE FL
NEW RELEASE
Now you can translate your BASIC
programs from your TS1000 tapes
to TS2000 tapes. This program
UPLOAD 2000 will do this for you.
All available TS products sold
UPL0AD2 000 - $19.95
Blank C10 Data tapes $9.95/10 Tapes
You can purchase these items
from E-Z KEY, Suite 75-STXA, 711
Southern Artery, Quincy, MA.
02169 (617)773-1187 MC or VISA
PRINTERS $49.90 — 30 Mindware MW100
available. Prints all symbols for
TS1000/1500, three modes, 16 col.,
ribbon on plain paper. Solves power
and extender problems. Pyramid Elec
2174 Gulf Gate, Sarasota, FL 33581.
COD, Visa, MC. Ph. (813) 922-9574.
CRYPTOGRAPHY SOFTWARE for T/S-1000S
w/2K or more. For cryptosecure re¬
cords, communication? also fun and
learning. Instructions, descrip¬
tion and listing . $5.95
DEL PRODUCTS, INC., 13512 Keating
St., Rockville, MD 20853
CRYSTAL COAST SOFTWARE. Educational
Entertaining and Practical Programs
Send for FREE catalog:
PO BOX 233, MOREHEAD CITY, NC 28557
U.S. Postage
PAID
Harvard, MA
Permit No. 8
01451
First Class
05 8S XU 68 J
U